#ifndef __APP_SERIAL_H__
#define __APP_SERIAL_H__

#include <termios.h>
#include "app_device.h"

// 波特率
typedef enum
{
    BR_9600 = B9600,
    BR_115200 = B115200
} BaudRate_t;

// 校验位
typedef enum
{
    Parity_None = 0,
    Parity_Odd = PARENB | PARODD,
    Parity_Even = PARENB
} Parity_t;

// 停止位
typedef enum
{
    SB_1 = 0,
    SB_2 = CSTOPB
} StopBits_t;

/**
 * @brief 初始化串口
 *
 * @param device
 * @return int
 */
int app_serial_init(Device_t *device);

/**
 * @brief 刷新 应用配置
 *
 * @param device
 * @return int
 */
int app_serial_flush(Device_t *device);

// 设置波特率
int app_serial_setBaudRate(Device_t *device, BaudRate_t baudRate);

// 设置校验位
int app_serial_setParity(Device_t *device, Parity_t parity);

// 设置停止位
int app_serial_setStopBits(Device_t *device, StopBits_t stopBits);

// 设置阻塞模式
int app_serial_setBlock(Device_t *device, int is_block);

// 设置原始模式
int app_serial_setRaw(Device_t *device);
#endif /* __APP_SERIAL_H__ */
